<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	
	
	<!--  
		1. WHY 使用 form 标签呢 ?
		可以更快速的开发出表单页面, 而且可以更方便的进行表单值的回显
		2. 注意:
		可以通过 modelAttribute 属性指定绑定的模型属性,
		若没有指定该属性，则默认从 request 域对象中读取 command 的表单 bean
		如果该属性值也不存在，则会发生错误。
	-->
	<form action="testConversionServiceConver" method="post">
	  <!-- lastname-email-gender-department.id 例如：GG-gg@atguigu.com-0-105-->
	  Employee:<input type="text" name="employee"/>
	  <input type="submit" value="Submit"/>
	</form>
	<br><br>
	<form:form action="${pageContext.request.contextPath}/emp" method="POST" modelAttribute="employee">
		<c:if test="${employee.id==null }">
			LastName: <form:input path="lastName"/>
		</c:if>
		<c:if test="${employee.id!=null }">
			<form:hidden path="id"/>
			<%-- 对于——method 不能使用form:hidden标签，因为modelAtrribute对应的bean中没有_method这个属性
			 --%>
			<input type="hidden" name="_method" value="PUT"/>
		</c:if>
		<br>
			Email: <form:input path="email"/>
		<br>
		<%
			Map<String,String> genders=new HashMap();
			genders.put("1", "Male");
			genders.put("0", "Female");
			request.setAttribute("genders",genders);
		%>
		Gender:<form:radiobuttons path="gender" items="${genders }" />
		<br>
 
		Department: <form:select path="department.id" 
			items="${departments }" itemLabel="departmentName" itemValue="id">
			</form:select>
		<br>
		<!-- 
			1.数据类型转换
			2.数据类型格式化
			3.数据校验的问题
			1).如何校验？注解？
			①.使用JSR 303 验证标准
			②.加入hibernate validator验证框架的jar包
			③.在SpringMVC配置文件中添加mvc:annotation-driven/>
			④.需要在bean的属性上添加对应的注解
			⑤.在目标方法 bean类型的前面添加@Valid注解
			2).验证出错转向到哪一个页面？
			3).错误消息？如何显示，如何把错误国际化
		 -->
		Birth:<form:input path="birth"/>
		<br>
		Salary:<form:input path="salary"/>
		<br>
		<input type="submit" value="Submit"/>
	</form:form>
	
</body>
</html>